import * as captcha from "@/api/security/captcha";

export type CaptchaData = {
  /** captchaId 验证码 ID */
  captchaId: string;
  /** captchaImage 验证码图片 base64 code */
  captchaImage: string;
};

export type Base64Data = {
  /** target 目标 */
  target: string;
};

export type Base64Code = {
  /** source 源 */
  source: string;
};

export type AesCipherData = {
  /** target 目标 */
  target: string;
};

export type AesCipher = {
  /** key AES 密钥 */
  key: string;
  /** iv AES 向量 */
  iv: string;
  /** source 源 */
  source: string;
};

export type RsaCipherData = {
  /** target 目标 */
  target: string;
};

export type RsaCipher = {
  /** key 如果是加密，传递公钥，如果是解密，传递私钥 */
  key: string;
  /** source 源 */
  source: string;
};

export type RsaKeyData = {
  /** publicKey 公钥 */
  publicKey: string;
  /** privateKey 私钥 */
  privateKey: string;
};

export type RsaKey = {
  /** keySize 密钥长度 */
  keySize: number;
};

export type RsaSignData = {
  /** sign 签名 */
  sign: string;
};

export type RsaSign = {
  /** key 私钥加签 */
  key: string;
  /** data 数据 */
  data: string;
};

export type RsaVerifyData = {
  /** verify 验签结果 */
  verify: boolean;
};

export type RsaVerify = {
  /** key 公钥验签 */
  key: string;
  /** data 数据 */
  data: string;
  /** sign 签名 */
  sign: string;
};

export type RsaPrivateKey = {
  /** privateKey 私钥 */
  privateKey: string;
  /** password 私钥密码 */
  password?: string;
};

export type Sm4CipherData = {
  /** target 目标 */
  target: string;
};

export type Sm4Cipher = {
  /** key SM4 密钥 */
  key: string;
  /** iv SM4 向量 */
  iv?: string;
  /** source 源 */
  source: string;
};

export type KmsSm4CipherData = {
  /** target 目标 */
  target: string;
};

export type KmsSm4Cipher = {
  /** source 源 */
  source: string;
};

export type CertCipher = {
  /** no 证书编号 */
  no: string;
  /** password 密码：如果是私钥，必传密码 */
  password?: string;
  /** source 源 */
  source: string;
};

export type CertCipherData = {
  /** target 目标 */
  target: string;
};

export type CertData = {
  /** no 证书编号 */
  no: string;
  /** subject 主题：使用者 */
  subject: string;
};

export type CertFile = {
  /** id 文件 ID */
  id: string;
  /** code 文件 code */
  code: string;
  /** password 密码：如果是私钥，必传密码 */
  password?: string;
};

export type CertSign = {
  /** no 证书编号 */
  no: string;
  /** password 密码：如果是私钥，必传密码 */
  password?: string;
  /** data 数据 */
  data: string;
};

export type CertSignData = {
  /** sign 签名 */
  sign: string;
};

export type CertVerify = {
  /** no 证书编号 */
  no: string;
  /** data 数据 */
  data: string;
  /** sign 签名 */
  sign: string;
};

export type CertVerifyData = {
  /** verify 验签结果 */
  verify: boolean;
};

export default {
  captcha
};
